package br.infotec.musicaunb.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.search.annotations.DocumentId;
import org.springframework.data.jpa.domain.AbstractPersistable;

@Entity
@Table(name = "telefone")
public class Telefone extends AbstractPersistable<Long> implements AbstraticPojo {

	/**
	 * @author Denis
	 */
	private static final long serialVersionUID = 1L;
	
	// atributos relacionais
	private Responsavel responsavel;
	private Professor professor;
	private Acompanhante acompanhante;
	// atributos originais
	private Integer numero;
	private TipoTelefone tipoTelefone;
	
	@Override
	@Column(name = "id_telefone")
	@GeneratedValue
	@DocumentId
	public Long getId() {
		return super.getId();
	}
	
	@ManyToOne
	@JoinColumn(name = "id_responsavel")
	public Responsavel getResponsavel() {
		return responsavel;
	}
	public void setResponsavel(Responsavel responsavel) {
		this.responsavel = responsavel;
	}
	
	@ManyToOne
	@JoinColumn(name = "id_professor")
	public Professor getProfessor() {
		return professor;
	}
	public void setProfessor(Professor professor) {
		this.professor = professor;
	}
	
	@ManyToOne
	@JoinColumn (name = "id_acompanhante")
	public Acompanhante getAcompanhante() {
		return acompanhante;
	}
	public void setAcompanhante(Acompanhante acompanhante) {
		this.acompanhante = acompanhante;
	}
	
	@Column(name = "numero")
	public Integer getNumero() {
		return numero;
	}
	public void setNumero(Integer numero) {
		this.numero = numero;
	}
	
	@ManyToOne
	@JoinColumn(name = "id_tipo_telefone")
	public TipoTelefone getTipoTelefone() {
		return tipoTelefone;
	}

	public void setTipoTelefone(TipoTelefone tipoTelefone) {
		this.tipoTelefone = tipoTelefone;
	}
	
}
